<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
<script type="text/javascript">
// 最长不连续字串
// function fun(s){
// 	let res = new Set()
// 	let p = 0
// 	s = s.split("")
// 	s.forEach(chr => {
// 		if(res.has(chr)){
// 			let temp = Array.from(res)
// 			for(let i = 0; i < temp.length; i++){
// 				res.delete(temp[i])
// 				if(temp[i] === chr){
// 					break
// 				}
// 			}
// 		}
// 		res.add(chr)
// 		if(res.size > p) p = res.size
// 	})
// 	return p
// }
// console.log(fun("abab!"))
// function fun(s){
// 	let res = []
// 	let p = 0
// 	s = s.split("")
// 	s.forEach(chr => {
// 		let ind = res.findIndex(e => e === chr)
// 		if(ind !== -1){
// 			res = res.slice(ind + 1)
// 		}
// 		res.push(chr)
// 		if(res.length > p) p = res.length
// 	})
// 	return p
// }
// console.log(fun("abab!"))

// 外观数列
function countAndSay (n) {
	if(n === 1){
		return "1"
	}
	let str = countAndSay(n - 1)
	let res = [{}]
	for(let i = 0; i < str.length; i++){
		let curr = res[res.length-1]
		if(curr.key === str[i]){
			curr.val = curr.val ? ++ curr.val : 1
		}else{
			res.push({
				key: str[i],
				val: 1
			})
		}
	}
	str = ""
	for(let i = 1; i < res.length; i++){
		str = str + res[i].val + res[i].key
	}
	return str
}
console.log(countAndSay(4))
</script>
	</body>
</html>
